#pragma once

#include "Calendar.h"

class MeetingAdvance;
class CalendarAdvance;

#define MEETING_ADVANCE 2
#define CALENDAR_ADVANCE 2

class CalendarAdvance : public Calendar {
public:
	CalendarAdvance(int nofDays);
	
	virtual ~CalendarAdvance();
	virtual CalendarError createMeeting(const char *subject, float startTime, float endTime, int day, const char *names,/*out*/const Meeting *&meeting);
	virtual CalendarError moveMeeting(const Meeting &meeting, float startTime, float endTime, int day, /*out*/const Meeting *&newMeeting);
	virtual int whoAmI() const;
};

class MeetingAdvance : public Meeting{
public:
	
	MeetingAdvance::MeetingAdvance(float startTime, float endTime, const char* subject, const char *name, Day &day, Calendar &calendar);
	virtual ~MeetingAdvance();

	virtual CalendarError getNames(const char *&name) const;
	virtual CalendarError printAll() const;
	virtual CalendarError isOverlap(const Meeting &meeting, bool &status) const;
	virtual int whoAmI() const;

protected:
	virtual CalendarError setNames(const char *&names);
	virtual bool isIncludeName(const char *name) const;

private:

	const char* names;
};